package org.jiuling.basics.util;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则工具
 * @author 紫灵
 * @date 2022年02月24日 09时56分27秒
 */
public class RegularUtil {

    /** 私有构造方法，禁止创建对象 */
    private RegularUtil() {}

    /**
     * 获取值
     * @param regex 正则表达式
     * @param input 输入值
     * @return 值
     */
    public static List<String> getValue(String regex, String input){
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        List<String> strList = new ArrayList<>();
        while (matcher.find()){
            for (int i = 0; i <= matcher.groupCount(); i++){
                strList.add(matcher.group(i));
            }
        }
        return strList;
    }

    /**
     * 获取值列表
     * @param regex 正则表达式
     * @param input 输入值
     * @return 值列表
     */
    public static List<List<String>> getValueList(String regex, String input){
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        List<List<String>> strListList = new ArrayList<>();
        while (matcher.find()) {
            List<String> strList = new ArrayList<>();
            for (int i = 1; i <= matcher.groupCount(); i++){
                strList.add(matcher.group(i));
            }
            strListList.add(strList);
        }
        return strListList;
    }

}
